package VideoJuego;

/*Desarrolladores:
*Equipo: The Dream Team
*José Francisco Ruiz Martínez 		A01166298
*José Héctor Bermúdez Robles		A01161142
*Arturo Ramírez Morales			A01165819
*/

/*
Esta clase se encarga de ir incrementando los valores de los segundos y minutos en el reloj
 */
import java.io.IOException;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.Sprite;

/**
 *
 * @author LapR
 */
public class Reloj {

    private int tiempo=0;
    private int limite=0, lapso=0;
    private int Y=0, X=0;
    private int s=0, m=0;
    private Sprite segundos, decimal;
    private Sprite minutos, puntos;
    private final int margen = 20;

    /**
     *
     * @param limite
     * @param Xpant posición en la coordernada X en la que aparecerá el reloj
     * @param Ypant posición en la coordernada Y en la que aparecerá el reloj
     * @throws IOException
     */
    public Reloj(int limite, int Xpant, int Ypant) throws IOException {
        Y = Ypant;
        X = Xpant;
        int[] secuencia = {0, 1};
        Image dec = Image.createImage("/ImagenesJuego/Digitos.png");
        Image dosPuntos = Image.createImage("/ImagenesJuego/dospuntos.png");
        puntos = new Sprite(dosPuntos, 20, 13);
        puntos.setFrameSequence(secuencia);
        decimal = new Sprite(dec, 26, 20);
        segundos = new Sprite(dec, 26, 20);
        minutos = new Sprite(dec, 26, 20);
        decimal.setPosition(Xpant - (decimal.getWidth() + margen), Ypant - decimal.getHeight() - 10);
        segundos.setPosition(decimal.getX(), decimal.getY() - segundos.getHeight());
        puntos.setPosition(decimal.getX(), segundos.getY() - puntos.getHeight() - 1);
        minutos.setPosition(decimal.getX(), segundos.getY() - minutos.getHeight() - 3);


        this.limite = limite;
        tiempo = 0;


    }

    /**
     * Se encarga de incrementar y actualizar el tiempo
     * @param lapso Intervalo de tiempo que se incrementa
     */
    public void incrementar(int lapso) {
        Tiempo();
        tiempo += lapso;
    }

    /**
     *
     * @return Regresa el tiempo que ha transcurrido del juego
     */
    public int getTiempo() {
        return (m * 60) + s;
    }

    /**
     *
     * @param tiempo Pone el tiempo que lleva el juego
     */
    public void setTiempo(int tiempo) {
        this.tiempo = tiempo;
    }

    /**
     * Se encarga de la actualización de los minutos con respecto a los segundos transcurridos
     */
    public void Tiempo() {

        if (tiempo % 35 == 0) {
            s++;

            if (s == 60) {
                s = 0;

                m++;
                minutos.setFrame(m);
            }
            segundos.setFrame(s / 10);
            decimal.setFrame(s % 10);
            puntos.nextFrame();
        }


    }

    /**
     * Este método se encarga de dibujar el relod en la posición deseada
     * @param g En donde se va a dibujar el reloj
     */
    public void dibujar(Graphics g) {
        minutos.paint(g);
        decimal.paint(g);
        puntos.paint(g);
        segundos.paint(g);

    }

    public void destruir(){
    tiempo=0;
    limite=0;
    lapso=0;
    Y=0;
    X=0;
    s=0;
    m=0;
    segundos=null;
    decimal=null;
    minutos=null;
    puntos=null;
    }
}
